package fr.babos.touch.events 
{
	import flash.events.Event;
	import flash.events.TouchEvent;
	
	/**
	 * @author ZoulouX
	 */
	public class GestureTouchEvent extends Event
	{
		/**
		 * Les touchEvents associés à ce GestureTouchEvent
		 */
		public var touchEvents		:Vector.<TouchEvent> = new Vector.<TouchEvent>;
		
		/**
		 * Le constructeur
		 * @param	type
		 * @param	bubbles
		 * @param	cancelable
		 */
		public function GestureTouchEvent (type:String, bubbles:Boolean = false, cancelable:Boolean = false)
		{
			super(type, bubbles, cancelable);
		}
		
		public override function clone ():Event
		{ 
			return new GestureTouchEvent(type, bubbles, cancelable);
		}
		public override function toString ():String
		{ 
			return formatToString("GestureTouchEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
		
		/**
		 * Arrêter la propagation immediate des TouchEvent associés
		 */
		public function stopImmediateTouchEventsPropagation ():void
		{
			for each (var touchEvent:TouchEvent in touchEvents)
			{
				touchEvent.stopImmediatePropagation();
			}
		}
		
		/**
		 * Arrêter la propagation des TouchEvent associés
		 */
		public function stopTouchEventsPropagation ():void
		{
			for each (var touchEvent:TouchEvent in touchEvents)
			{
				touchEvent.stopPropagation();
			}
		}
	}
}